Device initialization may comprise operations executed when a device is initialized (e.g., powered up, rebooted, etc.). For example, during device initialization firmware (e.g., software encoded in at least one electronic component in the device) may be loaded and/or executed by at least one microprocessor in the device to configure equipment and load software into the device. Basic software resources may include, for example, a kernel (e.g., software to manage interaction between device hardware and higher-level software components like an operating system (OS)), drivers, utilities, etc. Thus, the ability of the OS to interact with hardware in the device may rely on the firmware that is loaded during device initialization, and the firmware that is loaded during device initialization may depend highly on the equipment installed in, or coupled to, the device.
Traditionally, firmware is developed and maintained by designers at the manufacturer of the device. This helps ensure that the firmware will execute as expected and in a stable manner, is secure, that updates will maintain stable performance, etc. Moreover, these same operational characteristics firmware may be maintained by “locking down” firmware to prevent intermediate users (e.g., original equipment manufacturers, integrators, etc.) and/or end users from being able to perform modifications. While the rationale for these behaviors is clear, in the changing realm of modern technology they are becoming problematic. Relying on a certain group of developers to develop firmware for a complex platform may create a “silo effect” in that divisions may exist between development teams responsible for hardware and firmware. This places a large burden on firmware developers to service a variety of different consumers. Moreover, the availability of open-source firmware (e.g., firmware code and development tools that may be publicly available without a fee or need to license) may facilitate intermediate and/or end users in formulating their own firmware that may, for example, load features such as enhanced security resources, custom equipment configurations and/or drivers, performance tracking and/or enhancement applications, end use-specific utilities, etc. Users crave the customizability provided by open source firmware.
Although the following Detailed Description will proceed with reference being made to illustrative embodiments, many alternatives, modifications and variations thereof will be apparent to those skilled in the art.